\documentclass[twoside]{book}

% Packages required by doxygen
\usepackage{calc}
\usepackage{doxygen}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{textcomp}
\usepackage[table]{xcolor}

% Font selection
\usepackage[T1]{fontenc}
\usepackage{mathptmx}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{amssymb}
\usepackage{sectsty}
\renewcommand{\familydefault}{\sfdefault}
\allsectionsfont{%
  \fontseries{bc}\selectfont%
  \color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
  \fontseries{bc}\selectfont%
  \color{darkgray}%
}

% Page & text layout
\usepackage{geometry}
\geometry{%
  a4paper,%
  top=2.5cm,%
  bottom=2.5cm,%
  left=2.5cm,%
  right=2.5cm%
}
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.2cm}
\makeatletter
\renewcommand{\paragraph}{%
  \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
    \normalfont\normalsize\bfseries\SS@parafont%
  }%
}
\renewcommand{\subparagraph}{%
  \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
    \normalfont\normalsize\bfseries\SS@subparafont%
  }%
}
\makeatother

% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
\fancyhead[CE]{\fancyplain{}{}}
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[CO]{\fancyplain{}{}}
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[LE]{\fancyplain{}{}}
\fancyfoot[CE]{\fancyplain{}{}}
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated on Wed Jan 8 2014 11\-:03\-:26 for M\-P\-G\-L Engine by Doxygen }}
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated on Wed Jan 8 2014 11\-:03\-:26 for M\-P\-G\-L Engine by Doxygen }}
\fancyfoot[CO]{\fancyplain{}{}}
\fancyfoot[RO]{\fancyplain{}{}}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{%
  \markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
  \markright{\thesection\ #1}%
}

% Indices & bibliography
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
\makeindex

% Custom commands
\newcommand{\clearemptydoublepage}{%
  \newpage{\pagestyle{empty}\cleardoublepage}%
}


%===== C O N T E N T S =====

\begin{document}

% Titlepage & ToC
\pagenumbering{roman}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large M\-P\-G\-L Engine \\[1ex]\large pre-\/alpha }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.8.5}\\
\vspace*{0.5cm}
{\small Wed Jan 8 2014 11:03:26}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}

%--- Begin generated contents ---
\chapter{Namespace Index}
\input{namespaces}
\chapter{Hierarchical Index}
\input{hierarchy}
\chapter{Data Structure Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Namespace Documentation}
\input{namespacemp__base}
\input{namespacemp__base_1_1console}
\input{namespacemp__base_1_1interfaces}
\input{namespacemp__base_1_1math}
\input{namespacemp__base_1_1utility}
\input{namespacemp__myApp}
\input{namespacempgl__engine}
\input{namespacempgl__engine_1_1application}
\input{namespacempgl__engine_1_1application_1_1audio}
\input{namespacempgl__engine_1_1application_1_1glfw}
\input{namespacempgl__engine_1_1application_1_1input}
\input{namespacempgl__engine_1_1application_1_1net}
\input{namespacempgl__engine_1_1driver}
\input{namespacempgl__engine_1_1driver_1_1gl__console}
\input{namespacempgl__engine_1_1driver_1_1threading}
\input{namespacempgl__engine_1_1scene}
\input{namespacempgl__engine_1_1scene_1_1fonts}
\chapter{Data Structure Documentation}
\input{structmp__base_1_1math_1_1Area}
\input{classmpgl__engine_1_1application_1_1audio_1_1AudioDefines}
\input{classmpgl__engine_1_1application_1_1audio_1_1AudioManager}
\input{classmp__base_1_1interfaces_1_1Collection}
\input{classmp__base_1_1console_1_1Command}
\input{structmp__base_1_1console_1_1CommandCompare}
\input{classmp__base_1_1console_1_1CommandConsole}
\input{classmp__base_1_1console_1_1CommandListener}
\input{classmp__base_1_1console_1_1CommandTemplate}
\input{classmp__base_1_1console_1_1Console}
\input{classmp__base_1_1console_1_1ConsolePrefix}
\input{structmp__base_1_1math_1_1Coordinate2D}
\input{structmp__base_1_1math_1_1Coordinate3D}
\input{classmp__base_1_1interfaces_1_1Drawable}
\input{classmp__base_1_1interfaces_1_1DrawableCollection}
\input{classmp__base_1_1interfaces_1_1Error}
\input{classmp__base_1_1interfaces_1_1Event}
\input{classmpgl__engine_1_1application_1_1GLApp}
\input{structmpgl__engine_1_1application_1_1GLAppComponents}
\input{classmpgl__engine_1_1scene_1_1GLAppScene}
\input{classmpgl__engine_1_1scene_1_1fonts_1_1GLBitmapFont}
\input{classmpgl__engine_1_1application_1_1input_1_1GLButtonEvent}
\input{classmpgl__engine_1_1application_1_1input_1_1GLButtonEventCollection}
\input{classmpgl__engine_1_1driver_1_1gl__console_1_1GlConsole}
\input{classmpgl__engine_1_1application_1_1input_1_1GLDirectKeyboardInput}
\input{classmpgl__engine_1_1driver_1_1GLDriver}
\input{classmpgl__engine_1_1application_1_1input_1_1GLInputDefines}
\input{classmpgl__engine_1_1application_1_1input_1_1GLInputManager}
\input{classmpgl__engine_1_1application_1_1input_1_1GLKeyboardEvent}
\input{classmpgl__engine_1_1application_1_1input_1_1GLMouseButtonEvent}
\input{classmpgl__engine_1_1application_1_1glfw_1_1GLWindow}
\input{classmp__base_1_1interfaces_1_1LockableMutex}
\input{classmp__base_1_1interfaces_1_1Logical}
\input{classmpgl__engine_1_1driver_1_1threading_1_1LogicThread}
\input{classmp__myApp_1_1MyGLApp}
\input{classmp__myApp_1_1MyTestScene}
\input{classmpgl__engine_1_1application_1_1net_1_1NetworkDefines}
\input{classmpgl__engine_1_1application_1_1net_1_1NetworkManager}
\input{classmpgl__engine_1_1driver_1_1threading_1_1NetworkThread}
\input{classmp__base_1_1interfaces_1_1ReceivesErrors}
\input{classmp__base_1_1interfaces_1_1ReceivesMessages}
\input{classmp__base_1_1interfaces_1_1RecursiveLockingMutex}
\input{classmp__base_1_1interfaces_1_1SharedCollection}
\input{classmp__base_1_1SimpleArray}
\input{classmpgl__engine_1_1application_1_1net_1_1TcpClient}
\input{classmpgl__engine_1_1application_1_1net_1_1TcpConnection}
\input{classmpgl__engine_1_1application_1_1net_1_1TcpData}
\input{classmpgl__engine_1_1application_1_1net_1_1TcpError}
\input{classmpgl__engine_1_1application_1_1net_1_1TcpServer}
\input{classmpgl__engine_1_1application_1_1net_1_1TcpSession}
\input{classmp__base_1_1interfaces_1_1Threaded}
\input{classmpgl__engine_1_1driver_1_1threading_1_1ThreadPoolManager}
\input{classmpgl__engine_1_1driver_1_1threading_1_1ThreadProcedure}
\input{classmp__base_1_1interfaces_1_1Updateable}
\input{classmp__base_1_1interfaces_1_1UpdateableCollection}
\input{classmp__base_1_1interfaces_1_1UsesCharArray}
\input{classmp__base_1_1interfaces_1_1UsesIOStream}
\input{structmp__base_1_1math_1_1Vector2D}
\input{structmp__base_1_1math_1_1Vector3D}
\input{structmp__base_1_1math_1_1Volume}
\chapter{File Documentation}
\input{Collection_8cpp}
\input{Collection_8h}
\input{Command_8cpp}
\input{Command_8h}
\input{CommandConsole_8cpp}
\input{CommandConsole_8h}
\input{CommandListener_8cpp}
\input{CommandListener_8h}
\input{CommandTemplate_8cpp}
\input{CommandTemplate_8h}
\input{Console_8cpp}
\input{Console_8h}
\input{ConsolePrefix_8h}
\input{Drawable_8h}
\input{DrawableCollection_8h}
\input{Error_8h}
\input{Event_8cpp}
\input{Event_8h}
\input{LockableMutex_8h}
\input{Logical_8h}
\input{Pause_8h}
\input{ReceivesErrors_8h}
\input{ReceivesMessages_8h}
\input{RecursiveLockingMutex_8h}
\input{SharedCollection_8h}
\input{SimpleArray_8h}
\input{Threaded_8h}
\input{Updateable_8h}
\input{UpdateableCollection_8h}
\input{UsesCharArray_8h}
\input{UsesIOStream_8h}
\input{GLApp_8cpp}
\input{GLApp_8h}
\input{AudioDefines_8cpp}
\input{AudioDefines_8h}
\input{AudioManager_8cpp}
\input{AudioManager_8h}
\input{GLAppComponents_8cpp}
\input{GLAppComponents_8h}
\input{GLButtonEvent_8cpp}
\input{GLButtonEvent_8h}
\input{GLButtonEventCollection_8h}
\input{GLDirectKeyboardInput_8cpp}
\input{GLDirectKeyboardInput_8h}
\input{GLInputDefines_8cpp}
\input{GLInputDefines_8h}
\input{GLInputManager_8cpp}
\input{GLInputManager_8h}
\input{GLKeyboardEvent_8cpp}
\input{GLKeyboardEvent_8h}
\input{GLMouseButtonEvent_8h}
\input{GLMouseLocation_8h}
\input{GLWindow_8cpp}
\input{GLWindow_8h}
\input{NetworkDefines_8cpp}
\input{NetworkDefines_8h}
\input{NetworkManager_8cpp}
\input{NetworkManager_8h}
\input{TcpClient_8cpp}
\input{TcpClient_8h}
\input{TcpConnection_8cpp}
\input{TcpConnection_8h}
\input{TcpData_8cpp}
\input{TcpData_8h}
\input{TcpError_8h}
\input{TcpServer_8cpp}
\input{TcpServer_8h}
\input{TcpSession_8cpp}
\input{TcpSession_8h}
\input{GLDriver_8cpp}
\input{GLDriver_8h}
\input{GLConsole_8h}
\input{GLConsoleCommand_8h}
\input{LogicThread_8cpp}
\input{LogicThread_8h}
\input{NetworkThread_8cpp}
\input{NetworkThread_8h}
\input{ThreadPoolManager_8cpp}
\input{ThreadPoolManager_8h}
\input{ThreadProcedure_8h}
\input{GLAppScene_8h}
\input{GLBitmapFont_8cpp}
\input{GLBitmapFont_8h}
\input{Main_8cpp}
\input{Area_8h}
\input{Coordinate2D_8h}
\input{Coordinate3D_8h}
\input{Vector2_8h}
\input{Vector3D_8h}
\input{Volume_8h}
\input{MyGLApp_8cpp}
\input{MyGLApp_8h}
\input{MyTestScene_8cpp}
\input{MyTestScene_8h}
\input{tcpClientExample_8cpp}
\input{tcpServerExample_8cpp}
%--- End generated contents ---

% Index
\newpage
\phantomsection
\addcontentsline{toc}{part}{Index}
\printindex

\end{document}
